Shader Model(在3D图形领域常被简称SM)就是“优化渲染引擎模式”。事实上,Shader(着色器)是一段能够针对3D对象进行操作、并被GPU所执行的程序。通过这些程序,程序员就能够获得绝大部分想要的3D图形效果。在一个3D场景中,一般包含多个Shader。这些Shader中有的负责对3D对象表面进行处理,有的负责对3D对象的纹理进行处理。早在微软发布DirectX 8时,Shader Model的概念就出现在其中了,并根据操作对象的不同被分为对顶点进行各种操作的Vertex Shader(顶点渲染引擎)和对像素进行各种操作的Pixel Shader(像素渲染引擎)。
时至微软发布DirectX 10.1之后,Shader Model 已经有五个版本了:分别是Shader Model 1.0(DirectX8.0)、Shader Model 2.0(DirectX9.0b)、Shader Model 3.0(DirectX9.0c)、Shader Model 4.0(DirectX10)、Shader Model 4.1(DirectX10.1)和Shader Model 5.0(DirectX11)。
在Shader Model发展史上,从SM 1.0进化到SM 2.0称得上是真正意义上的技术革命,后者赋予了
显示芯片强大的能力,人们在游戏中也领略到前所未有的视觉体验,例如水面光影和雾化等特效的出现使游戏场景更真实。相对而言,SM 2.0到SM 3.0的改进不如SM 1.0到SM 2.0的变化大,SM 3.0除了支持32bit
浮点运算是亮点外,其他特效用SM 2.0也可以完成。相比原先的Shader Model 3.0,Shader Model 4.0最大指令数从512条增加到了64000条;临时
暂存器
Shader Model 4.0另一个重大变化就是在VS和PS之间引入了一个新的可编程图形层----几何渲染器(Geometry Shader)。原来的Vertex Shader和Pixel Shader只是对逐个顶点或像素进行处理,而新的Geometry Shader可以批量进行几何处理。然而其因性能原因而受到诟病,实际上使用它的人并不多。为了兼顾性能,DX11(SM 5.0)引入了Tessellation来取代GS的部分功能。